#2. 以Lena为原始图像，通过OpenCV使用Sobel及Canny算子检测，比较边缘检测结果。 

import cv2
img = cv2.imread("./lena.jpg")#加载图片
cv2.imshow("lena", img)#显示图片


blurred = cv2.GaussianBlur(img, (3, 3), 0)#高斯模糊

out_img_GRAY=cv2.cvtColor(blurred,cv2.COLOR_BGR2GRAY)#将图片转换为灰度图
cv2.imshow('img_GRAY', out_img_GRAY)  #显示灰度图


#使用Canny算子进行边缘检测
edge_output = cv2.Canny(out_img_GRAY, 10, 300)
cv2.imshow('Canny', edge_output)    #显示原始图片


#使用sobel算子进行边缘检测
sobel = cv2.Sobel(out_img_GRAY,-1,1,0,ksize=3)
cv2.imshow('sobel', sobel)    #显示原始图片


#使用laplacian算子进行边缘检测
laplacian = cv2.Laplacian(out_img_GRAY,-1)
cv2.imshow('laplacian', laplacian)    #显示原始图片

cv2.waitKey(0)
cv2.destroyAllWindows()